home *** CD-ROM | disk | FTP | other *** search
-
-
- const mid_uuidlen = 36;
- const mid_NS = "http://mid.mozdev.org/dictionaries";
- const idstr = "iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii";
-
-
- function loadFFsearchEngines() {
- var ccss = Components.classes["@mozilla.org/browser/search-service;1"];
- if (ccss) {
- var searchService = Components.classes["@mozilla.org/browser/search-service;1"].getService(Components.interfaces.nsIBrowserSearchService);
- var searchEngines = searchService.getVisibleEngines({ });
- importEngines(searchEngines);
- }
- return;
- }
-
-
- function getSearcParams(searchEngine, searchValue)
- {
- var searchSubmission = searchEngine.getSubmission(searchValue, null);
- var postData = searchSubmission.postData ? searchSubmission.postData : null;
- var searchUrl = searchSubmission.uri.spec;
- var finalUrl = new String();
-
- if (!searchValue)
- {
- var uri = Components.classes['@mozilla.org/network/standard-url;1']
- .createInstance(Components.interfaces.nsIURI);
- uri.spec = searchUrl;
- searchUrl = uri.host;
- }
-
- // recommendation by Mat on AMO
- for (var i = 0; i < searchUrl.length; i++) {
- finalUrl += (searchUrl[i] == "+") ? "%20" : searchUrl[i];
- }
-
- return {searchUrl: finalUrl, postData: postData};
- }
-
-
- function importEngines(engines) {
- var newdict;
- while (eng = engines.shift()) {
- newdict = document.createElementNS(mid_NS,"mid:dict");
- popuplateWithArguments(eng,newdict);
- document.getElementById("middicos").appendChild(newdict);
- }
- }
-
- function popuplateWithArguments(eng,dict){
-
- var searchParams = getSearcParams(eng, "XXX");
- var enginame = eng.name.substring(0,mid_uuidlen);
- dict.setAttribute("label", enginame);
- dict.setAttribute("engine_name", enginame);
- dict.setAttribute("dictid", (enginame + idstr).substring(0,mid_uuidlen));
- dict.setAttribute("home", eng.searchForm);
- dict.setAttribute("url", searchParams.searchUrl);
- if (!searchParams.postData) {
- dict.setAttribute("method", "GET");
- } else {
- dict.setAttribute("method", "POST");
- dict.setAttribute("inputs", searchParams.postData);
- }
- dict.setAttribute("checked", "false");
- dict.setAttribute("js", "enabled");
- dict.setAttribute("special", "yes");
- if (eng.iconURI) {
- dict.setAttribute("fav", eng.iconURI.spec)
- } else {
- dict.setAttribute("fav","chrome://mid/skin/images/mid16.ico")
- }
- dict.setAttribute("type", getLocaleString("searchplugins.type"));
-
- }
-
- function getLocaleString(lsName)
- {
-
- var myprop =
- Components.classes["@mozilla.org/intl/stringbundle;1"].
- getService(Components.interfaces.nsIStringBundleService);
- var mystrings = myprop.createBundle("chrome://mid/locale/searchplugins.properties");
- return mystrings.GetStringFromName(lsName);
-
- }
-
-
-
- // var sp=getSearcParams(v[0],"XXX")
- // sp.searchUrl
- // http://www.google.com/search?q=XXX&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:hu-HU:official&client=firefox-a
- // sp.postData
- // null
-
-
- // http://www.koders.com/javascript/fidE9B756690EE8433D8880C15D6F684F019CFF82ED.aspx?s=nsIBrowserSearchService#L231
-